﻿#define _CRT_SECURE_NO_WARNINGS
//作者：宋安康
#include"SeqList.h"
#include"Contact.h"
#include<string.h>
//void LoadContact(Contact* con) {
//	FILE* pf = fopen("contact.txt", "rb");
//	if (pf == NULL) {
//		perror("fopen error\n");
//		return;
//	}
//	//循环读取数据
//	Info info;
//	while (fread(&info, sizeof(Info), 1, pf))
//	{
//		SLPushBack(con, info);
//	} printf("导入历史数据\n");
//}

void ContactInit(Contact* con)   //创建
{
	SLInit(con);
	/*LoadContact(con);*/
}

void ContactDesTroy(Contact* con)   //销毁
{
	SLDestroy(con);
}
int FindByName(Contact* con, char name[])
{
	for (int i = 0; i < con->size; i++)
	{
		if (strcmp(con->arr[i].name, name) == 0)
		{
			//找到
			return i;
		}

	}
	return -1;
}
int FindByage(Contact* con, int age)
{
	for (int i = 0; i < con->size; i++)
	{
		if (con->arr[i].age == age)
		{
			//找到
			return i;
		}

	}
	return -1;
}
void ContactAdd(Contact* con)
{
	Info info;
	printf("请输入姓名\n");
	scanf("%s",info.name);
	printf("请输入年龄\n");
	scanf("%d", &info.age); 
	printf("请输入性别\n");
	scanf("%s", info.sex);
	printf("请输入电话\n");
	scanf("%s", info.tel);
	printf("请输入住址\n");
	scanf("%s", info.addr);

	SLPushBack(con,info);
}
void ContactDel(Contact* con) 
{
	//删除之前先查找
	printf("请输入姓名\n");
	int age;
	char name[NAME_MAX];
	scanf("%s",name);
	//anf("%d",&age);
	int ret = FindByName(&con, name);
	//int ret = FindByage(con, age);
	if (ret == -1)
	{
		printf("不存在\n");
		return;
	}
	//删除操作
	SLErase(&con, ret);
	printf("删除成功\n");
}
void ContactModify(Contact* con) 
{
	char name[NAME_MAX];
	printf("输入联系人姓名\n");
	scanf("%s",name);
	
	int ret = FindByName(con ,name);
	if (ret < 0 )
	{
		printf("不存在\n");
		return;
	}
	printf("输入姓名\n");
	scanf("%s",con->arr[ret].name);
	printf("输入年龄\n");
	scanf("%d", con->arr[ret].age);
	printf("输入sex\n");
	scanf("%s", con->arr[ret].sex);
	printf("输入tel\n");
	scanf("%s", con->arr[ret].tel);
	printf("输入addr\n");
	scanf("%s", con->arr[ret].addr);

	printf("success\n");
}

void ContactFind(Contact* con) 
{
	char name[NAME_MAX];
	printf("查找的姓名\n");
	scanf("%s",name);
	
	int ret = FindByName(con,name);
	if (ret<0)
	{
		return;
	}
	printf("%s\t%s\t%d\t%s\t%s\n", con->arr[ret].name,
		con->arr[ret].sex,
		con->arr[ret].age,
		con->arr[ret].tel,
		con->arr[ret].addr);
}
void ContacShow(Contact* con) 
{
	printf("%s\t%s\t%s\t%s\t%s\n","name","sex","age","tel","addr");
	for (int i = 0; i < con->size; i++)
	{
		printf("%s\t%s\t%d\t%s\t%s\n", con->arr[i].name,
			con->arr[i].sex,
			con->arr[i].age,
			con->arr[i].tel,
			con->arr[i].addr);
	}
}
//void SaveContact(Contact* con) {
//	FILE* pf = fopen("contact.txt", "wb");
//	if (pf == NULL) {
//		perror("fopen error!\n");
//		return;
//	}
//	//将通讯录数据写⼊⽂件
//	for (int i = 0; i < con->size; i++)
//	{
//		fwrite(con->arr + i, sizeof(Info), 1, pf);
//	}
//	printf("通讯录数据保存成功！\n");
//}